O6607(VARIABLE 45 CHAMFER)
(ABSOLUTE SURFACING MACRO)
(START OF ANGLE/ TOP OF PART)
(END OF ANGLE/ SIDE OF EDGE)
(X0 Y0 STARTS AT CL OF TOOL)
(MOVEMENT STARTS WITH VERTICAL)
(AXIS ALONG THETA 0 AND IS ROTATED)
(COUNTERCLOCKWISE 0-360 AROUND X0Y0)
(EXACT MIDDLE OF PART EDGE)
(UNPROVEN)

(FORMAT G65/G66 BCQDTMRZEVF)
(B = #2 - G68 ROTATION FROM 0 DEGREES)
(C = #3 - BIGGEST CHAMFER SIZE FROM EDGE)
(Q = #17 - STEPOVER IN Z/ # OF STEPS) 
(D = #7 - TOOL DIAMETER)
(T = #20 - TOOL RADIUS/ BALL OR BULL)
(M = #13 - EDGE TOTAL DISTANCE)
(R = #18 - R PLANE)
(Z = #26 - Z START ZERO)
(E = #8 - CHAMFER SIZE/ TOP)
(V = #22 - CHAMFER SIZE/ BOTTOM)
(F = #9 - FEEDRATE)
(***********************************)
#120=SIN[45.]*[#8]
#100=ABS[#26]-ABS[#120]
#100=ABS[#100]
N1#101=#100/#17
IF[#101GT[#100/2]]GOTO1000
#130=SIN[45.]*[#22]
#110=ABS[#26]-ABS[#130]
#110=ABS[#110]
N2#111=#110/#17
IF[#111GT[#110/2]]GOTO1000
#103=#5001
#113=#103
#104=[#103+.1]+[[#7/2]+#3]
IF[#7EQ[#20*2]]GOTO10
#103=#103+[[#7/2]-#20]
N10#122=90.+[90./2]
#103=#103+[#20/TAN[#122/2]]
#103=#103-[#8/2]
#123=#103+[#20/TAN[#122/2]]
#123=#123-[#22/2]
#105=#5002
#115=[#105+.1]+[[#7/2]+[#13/2]]
#125=[#105-.1]-[[#7/2]+[#13/2]]
#135=105+[#13/2]
#145=105-[#13/2]
#530=#2
IF[#2GT180.]THEN#530=#2-360.
G68R#530
G0G90X#104Y#115
Z[#26+.1]
G1Z#26F#9
#106=#5003
#108=#5003
#127=#17
WHILE[#127GE0]DO1
IF[#127LT0]GOTO100
#127=#127-1.
G1Z#106F#9
G41X#103
G1Y#135
X#123Y#145Z#108
Y#125
G0G40X[#123+.1]
#103=#103+[TAN[90./2]*#101]
#106=#106-#101
#123=#123+[TAN[90./2]*#111]
#108=#108-#111
IF[#127LT0]GOTO10
#127=#127-1.
G1Z#108F#9
G42X#123
Y#145
X#103Y#135Z#106
Y#115
G0G40X[#103+.1]
#103=#103+[TAN[90./2]*#101]
#106=#106-#101
#123=#123+[TAN[90./2]*#111]
#108=#108-#111
END1
N100G0G90Z#18
G69
X#113Y#105
M99
N1000#3000= 1( Q VALUE TOO BIG )
